<?php


function lProf(){
       header("Content-Type: application/json");
       $login=true; 
       $okCampi=true;
       $gialoggato=false;
       
       if(is_user_logged_in()){
           $gialoggato=true;
           global $user_ID; $loggato = get_userdata( $user_ID );
       }
       
           $res = array('ok' => 0, 'message' => '', 'campi' => array());

       if($gialoggato){
           $res['ok']=0;
           $res['message']="Sei già connesso come $loggato->display_name ";
           echo json_encode($res);
           die();
       }
       
       
       if(strlen($_POST['user-name']) && strlen($_POST['password'])){
           $login = wp_login( $_POST['user-name'], $_POST['password'] );
           $login = wp_signon( array( 'user_login' => $_POST['user-name'], 'user_password' => $_POST['password'] ), false );
           // global $user_ID; $login = get_userdata( $user_ID );
       }else{
           $okCampi=false;
       }
       //print_r($login->errors[0]->invalid_username);exit;
       if ( is_wp_error( $login ) ) {
        $error_string = $login->get_error_message();
        $res['ok']=0;
        $res['message']='<div id="message" class="error"><p>' . $error_string . '</p></div>';
         echo json_encode($res);
         die();
}
       
       if($okCampi){
           $res['ok']='3';
           $res['message']='Bentornato su Lines Perla.<br />Vai alla pagina per i <a href="'. get_bloginfo('url').'/professionisti">Professionisti</a>.<br />Oppure continua con la navigazione.';
           echo json_encode($res);
           die();
       }else{
           $res['ok']=0;
           $res['message']="Devi compilare tutti i campi per collegarti a Lines Perla";
           echo json_encode($res);
           die();
       }
       
       
       /*
        * 
        * if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == 'log-in' ) :
 global $error;
 $login = wp_login( $_POST['user-name'], $_POST['password'] );
 $login = wp_signon( array( 'user_login' => $_POST['user-name'], 'user_password' => $_POST['password'], 'remember' => $_POST['remember-me'] ), false );
endif;
?>
 <?php if ( is_user_logged_in() ) : ?>

 <?php global $user_ID; $login = get_userdata( $user_ID ); ?>

<p>
 <?php printf( __('Sei gi&agrave; connesso come <a href="%1$s" title="%2$s">%2$s</a>.'), get_author_posts_url( $login->ID ), $login->display_name ); ?>

 </p>
 <div>
 <h2>Pannello di controllo</h2>
 <ul>
 <li><a href="<?php bloginfo('url') ?>/wp-admin/">Bacheca &raquo;</a></li>
 <?php if ( $user_level >= 1 ) : ?>
 <li><a href="<?php bloginfo('url') ?>/wp-admin/post-new.php">Articoli &raquo;</a></li>
 <?php endif // $user_level >= 1 ?>
 <li><a href="<?php bloginfo('url') ?>/wp-admin/profile.php">Profilo e opzioni personali &raquo;</a></li>
 <a href="<?php echo wp_logout_url( get_permalink() ); ?>" title="<?php _e('Esci da questo account'); ?>"><?php _e('Log out &raquo;'); ?></a>
 </ul>
 </div>
 <?php elseif ( $login->ID ) : ?>
 <?php $login = get_userdata( $login->ID ); ?>
 <p>
 <?php printf( __('Connessione al sito avvenuta con successo, salve... <a href="%1$s" title="%2$s">%2$s</a>.'), get_author_posts_url( $login->ID ), $login->display_name ); ?>
 </p>
 <div>
 <h2>Pannello di controllo</h2>
 <ul>
 <li><a href="<?php bloginfo('url') ?>/wp-admin/">Bacheca &raquo;</a></li>
 <?php if ( $user_level >= 1 ) : ?>
 <li><a href="<?php bloginfo('url') ?>/wp-admin/post-new.php">Articoli &raquo;</a></li>
 <?php endif // $user_level >= 1 ?>
 <li><a href="<?php bloginfo('url') ?>/wp-admin/profile.php">Profilo e opzioni personali &raquo;</a></li>
 <a href="<?php echo wp_logout_url( get_permalink() ); ?>" title="<?php _e('Esci da questo account'); ?>"><?php _e('Log out &raquo;'); ?></a>
 </ul>
 </div>
 <?php else :  ?>
 <?php if ( $error ) : ?>
 <p>
 <?php echo $error; ?>
 </p>
 <?php endif; ?>
        * 
        * 
        * 
        * 
        * 
        * 
        * 
        * 
        */
       
}
function aggiungiProfessionista() {

    header("Content-Type: application/json");
    require_once( ABSPATH . WPINC . '/registration.php' );
    /* Check if users can register. */
    /* If user registered, input info. */
    $log = '';
    $ok = false;
    $okName = TRUE;
    $utente = TRUE;
    $okTitolo = TRUE;
    $okSpecializzazione = TRUE;
    $okmail = TRUE;
    $mailEsiste = TRUE;
    $campi = array();
    $dati = array();


    if (isset($_POST['user_name']) && strlen($_POST['user_name'])) {
        if (username_exists($_POST['user_name'])) {
            $utente = false;
            $log.="Username già esistente <br />";
            $campi[] = 'username esistente';
        } else {
            $dati['user_name'] = mysql_real_escape_string($_POST['user_name']);
        }
    } else {
        $okName = false;
        $log.="L'username &egrave; obbligatorio.<br />";
        $campi[] = 'username';
    }
    if (!is_email($_POST['email'], true)) {
        $okmail = false;
        $log.="Devi inserire una mail valida<br />";
        $campi[] = 'mail';
    } else {
        if (email_exists($_POST['email'])) {
            $mailEsiste = false;
            $log .= "L'indirizzo inserito è già stato registrato.<br />";
            $campi[] = 'mail Esistente';
        } else {
            $dati['email'] = $_POST['email'];
        }
    }

    if (isset($_POST['titolo']) && strlen($_POST['titolo'])) {
        $dati['titolo'] = $_POST['titolo'];
    } else {
        $okTitolo = FALSE;
        $log.="Devi inserire il tuo titolo<br />";
        $campi[] = "titolo";
    }
    if (isset($_POST['specializzazione']) && strlen($_POST['specializzazione'])) {
        $dati['specializzazione'] = $_POST['specializzazione'];
    } else {
        $okSpecializzazione = false;
        $log .= "Devi inserire la tua specializzazione <br />";
        $campi[] = "specializzazione";
    }


    if (isset($_POST['agree']) && $_POST['agree'] == 'Yes') {
        $ok = TRUE;
    } else {
        $ok = false;
        $log .="Per procedere con la registrazione, devi accettare i termini e le condizioni<br />";
        $campi[] = "discl1";
    }


    $res = array('ok' => 0, 'message' => '', 'campi' => array());

    if ((!$okName || !$okmail || !$okTitolo || !$okSpecializzazione) && (!$ok)) {
        $res['message'] = '<p>Per registrarti devi inserire tutti i campi obbligatori e accettare i termini</p>'; #$log;
        $res['campi'] = $campi;
        $res['ok'] = 0;
        echo json_encode($res);
        exit;
    } elseif ((!$okName || !$okmail || !$okTitolo || !$okSpecializzazione) && $ok) {
        $res['message'] = '<p>Per registrarti devi inserire tutti i campi obbligatori</p>'; #$log;
        $res['campi'] = $campi;
        $res['ok'] = 0;
        echo json_encode($res);
        exit;
    } elseif (!$utente) {
        $res['message'] = '<p>Nome Utente già in uso</p>';
        $res['campi'] = $campi;
        $res['ok'] = 0;
        echo json_encode($res);
        exit;
    }

    $tuttook = FALSE;
    if ($ok && $okName && $okmail && $okSpecializzazione && $okTitolo) {
        $user_pass = wp_generate_password();
        $userdata = array(
            'user_pass' => $user_pass,
            'user_login' => esc_attr($dati['user_name']),
            'first_name' => esc_attr($_POST['first_name']),
            'last_name' => esc_attr($_POST['last_name']),
            'user_email' => esc_attr($dati['email']),
            'titolo' => esc_attr($dati['titolo']),
            'specializzazione' => esc_attr($dati['specializzazione']),
            'role' => 'contributor' //get_option('default_role'), i professionisti sono collaboratori cosi possono inserire le FAQ e articoli scientifici
        );
        //manda la mail e scrive i campi aggiuntivi
        $new_user = wp_insert_user($userdata);
        wp_new_user_notification($new_user, $user_pass);
        update_usermeta($new_user, 'titolo', esc_attr($_POST['titolo']));
        update_usermeta($new_user, 'specializzazione', esc_attr($_POST['specializzazione']));
        update_usermeta($new_user, 'show_admin_bar_front', 'false'); //disabilito la barra di WP
        $tuttook = true;
    }

    $res['ok'] = 3;
    $res['message'] = '<p style="font-weight: bold;">GRAZIE</p><br />
   <p>La tua registrazione &egrave; andata a buon fine.</p>';
    echo json_encode($res);
    die();
}

function inviaDomandaProf() {
    header("Content-Type: application/json");

    $log = '';
    $campi[] = array();
    $ok = FALSE;
    $Scelta = FALSE;
    $lascelta = '';
    $informazioni = FALSE;
    $invioCampione = true;
    $inviato = FALSE;
    $puoiinviare = false;
    $domanda = FALSE;



    

    if (isset($_POST['agree']) && $_POST['agree'] == 'Yes') {
        $ok = TRUE;
    } else {
        $ok = false;
        $log .="Per procedere con l'invio della domanda, devi accettare i termini e le condizioni<br />";
        $campi[] = "discl1";
    }

    if (isset($_POST['scelta']) && ($_POST['scelta'] == "gamma" || $_POST['scelta'] == "bustine" || $_POST['scelta'] == "test")) {
        $Scelta = true;
        $lascelta = $_POST['scelta'];
    }

    if (isset($_POST['informazioni']) && ($_POST['informazioni'] == "informazioni")) {
        $informazioni = TRUE;
    }

    if (!isset($_POST['codicefiscale']) && !isset($_POST['via']) && !isset($_POST['civico']) && !isset($_POST['citta']) && !isset($_POST['provincia']) && !isset($_POST['cap']) && $Scelta) {
        $invioCampione = FALSE;
        $log .= "Per richiedere l'invio di un campione, devi compilare tutti i campi<br />";
        $campi[] = "recapiti";
    } else {
        //controllo se gia ha richiesto
        if (checkCampioneGiaInviato()) {
            $puoiinviare = true;
        } 
        
            if (!checkQualeCampione($_POST['scelta'], $_POST['email'])) {
                //cointrollo quale dei 3
                $log .= "Hai già richiesto questo tipo di prodotto.<br />";
                $campi[] = $_POST['scelta'];
                $inviato = TRUE;
            }
        
    }

    if (strlen($_POST['domanda']) > 5) {
       
        $domanda = true;
    }


    $res1 = array('ok' => 0, 'message' => '', 'campi' => array());

    if (!$ok) {
        $res1['ok'] = 0;
        $res1['campi'] = $campi;
        $res1['message'] = "Per procedere con l'invio devi accettare i termini e condizioni<br />";
        echo json_encode($res1);
        die();
    }

    if (!$informazioni && !$Scelta) {
        $res1['ok'] = 0;
        $res1['campi'] = $campi;
        $res1['message'] = "Per procedere con l'invio dei effettuare alemo una scelta<br />";
        echo json_encode($res1);
        die();
    }
    
    if($Scelta && strlen($lascelta)>1){
        if(strlen($_POST['citta']) && strlen($_POST['codicefiscale']) && strlen($_POST['provincia']) && strlen($_POST['cap']) && strlen($_POST['via'])
                &&  strlen($_POST['civico'])){
           $puoiinviare=true;
        }else{
            $res1['ok']=0;
            $res1['campi']= $campi;
            $res1['message']="Per procedere con la richiesta di invio prodotto devi compilare tutti i campi<br />";
            $puoiinviare=false;
            echo json_encode($res1);
            die();
        }
    }
    if($inviato){
        $res1['ok']=0;
        $res1['campi']=$campi;
        $res1['message']="Hai già richiesto questo prodotto<br />";
        echo json_encode($res1);
        die();
    }
    $msg = '';
    if ($puoiinviare && $domanda) {
        $msg.="\r\n
            Nome: " . $_POST['nome'] . "\r\n
            Cognome: " . $_POST['cognome'] . "\r\n
            Codice Fiscale: " . $_POST['codicefiscale'] . "\r\n
            Email: " . $_POST['email'] . "\r\n
            Città: " . $_POST['citta'] . "\r\n
            Provincia: " . $_POST['provincia'] . "\r\n
            Cap: " . $_POST['cap'] . "\r\n
            Via: " . $_POST['via'] . "\r\n
            N: " . $_POST['civico'] . "\r\n
            Domanda: " . $_POST['domanda'] . "\r\n

            \r\n
            ";
     
        $msg=  utf8_decode($msg);
        if(!wp_mail($_POST['email'], "Richiesta Professionista", $msg)){
            //errore
            $res1['ok']=0;
                $res1['message'] = 'Errore nell\'invio della e-mail. <br />Per favore riprova più tardi, grazie.';
                echo json_encode($res1); 
                exit;
        }
    }
    scriviDomandaDB();
   
        $res1['ok']='3';
        $res1['message'] = '<p style="font-weight: bold;">Grazie</p><br />
        <p>La tua richiesta è stata inviata con successo al nostro Staff. Riceverai una nostra comunicazione a breve</p>';
        echo json_encode($res1); 
        die();
}

function checkQualeCampione($tipo, $mail) {
    global $wpdb;
    $query = "SELECT * FROM wp_campioni_users WHERE email = '" . $mail . "' AND tipologia_campione ='" . $tipo . "' ";
   
    $r = $wpdb->get_results($query, ARRAY_A);
    if (count($r) != 0) {
        return false;
    }
    return true;
}

function askForTester() {
  
    global $pattern;
    /* Check if users can register. */
    /* If user registered, input info. */
    $log = '';
    $ok = true;

    $username = $_POST['username'];

    if ($username == "") {
        $log['username'] = "Devi inserire un nome utente";
        $ok = false;
    } elseif (!preg_match($pattern['username'], $username)) {
        $log['username'] = "Nell'username ci sono caratteri non ammessi";
        $ok = false;
    }

    $email = $_REQUEST['email'];
    if ($email == "" || !preg_match($pattern['email'], $email)) {
        $log['email'] = "Devi inserire un indirizzo email valido";
        $ok = false;
    }
    $richiestaCampione = "";
    if (isset($_REQUEST['checkCampione']) || (isset($_REQUEST['tipoCampione']) && $_REQUEST['tipoCampione']!="nocampione" ) ){
      if((isset($_REQUEST['tipoCampione']) && $_REQUEST['tipoCampione']!="nocampione" ) && !current_user_can("contributor"))
        die($_REQUEST['tipoCampione']);
        $richiestaCampione = "L'utente ha richiesto il campione di prova.";
        $nome = $_REQUEST['nome'];
        if ($nome == "") {
            $log['nome'] = "Devi inserire un nome valido";
            $ok = false;
        } elseif (!preg_match($pattern['nome'], $nome)) {
            $log['nome'] = "Ci sono dei caratteri non ammessi nel nome";
            $ok = false;
        }

        $cognome = $_REQUEST['cognome'];
        if ($cognome == "") {
            $log['cognome'] = "Devi inserire un cognome";
            $ok = false;
        } elseif (!preg_match($pattern['cognome'], $cognome)) {
            $log['cognome'] = "Ci sono dei caratteri non ammessi nel cognome";
            $ok = false;
        }

        $codice = $_REQUEST['codicefiscale'];
        if ($codice == "" || !preg_match($pattern['codice'], $codice)) {
            $log['codice'] = "Devi inserire un codice fiscale valido";
            $ok = false;
        }

        $via = $_REQUEST['via'];
        if ($via == "") {
            $log['via'] = "Devi inserire una via";
            $ok = false;
        } elseif (!preg_match($pattern['via'], $via)) {
            $log['via'] = "Ci sono dei caratteri non ammessi nella via";
            $ok = false;
        }

        $civico = $_REQUEST['civico'];
        if ($civico != "" && !preg_match($pattern['civico'], $civico)) {
            $log['civico'] = "Ci sono caratteri non ammessi nel numero civico";
            $ok = false;
        }

        $citta = $_REQUEST['citta'];
        if ($citta == "") {
            $log['citta'] = "Devi inserire una città";
            $ok = false;
        } elseif (!preg_match($pattern['citta'], $citta)) {
            $log['citta'] = "Ci sono dei caratteri non ammessi nella città";
            $ok = false;
        }

        $prov = $_REQUEST['provincia'];
        if ($prov == "") {
            $log['provincia'] = "Devi scegliere una provincia";
            $ok = false;
        }

        $cap = $_REQUEST['cap'];
        if ($cap == "") {
            $log['cap'] = "Devi inserire un cap";
            $ok = false;
        } elseif (!preg_match($pattern['cap'], $cap)) {
            $log['cap'] = "Ci sono dei caratteri non ammessi nel cap";
            $ok = false;
        }
    }
    if ($ok == true && isset($_REQUEST['checkCampione'])) {
        $ok = checkCampioneGiaInviato();

        if ($ok == false) {
            echo "campione";
            die();
            //bloccaIP();
        }
    }
    if ($ok == true && !isset($_REQUEST['checkCampione']) && $_REQUEST['tipoCampione'] !=  "nocampione") {
        $ok = checkCampioneGiaInviatoAdmin();

        if ($ok == false) {
            echo "campione";
            die();
            //bloccaIP();
        }
    }
    
    if ($ok == true) {
        scriviDomandaDB();
        wp_mail($_POST['email'], "domanda utente", $_POST['domanda'] . "\n {$richiestaCampione}");
        echo "ok";
        die();
    }
    header("Content-Type: application/json");
    echo json_encode($log);
    //echo $log;
    die();
}



function scriviDomandaDB() {
  $tipoCampione = "";
  if (isset($_REQUEST['checkCampione']))
    $campione = "0";
  elseif(!isset($_REQUEST['checkCampione']) && isset($_REQUEST['tipoCampione'])){
    $campione = "0";
    $tipoCampione = $_REQUEST['tipoCampione'];
    }
  else{
    $campione = "no_tester";
  }
  
    $query = "INSERT INTO wp_campioni_users (
        username,email,domanda,via,civico,
        cap,citta,provincia,codice_fiscale,campione_inviato,nome,cognome,tipologia_campione)
        VALUES ('{$_POST['username']}','{$_POST['email']}',
        '" . preg_replace('/\s{2,}/', ' ', $_POST['domanda']) . "','" . preg_replace('/\s{2,}/', ' ', $_POST['via']) . "','" . preg_replace('/\s{2,}/', ' ', $_POST['civico']) . "',
        '" . preg_replace('/\s{2,}/', ' ', $_POST['cap']) . "','" . preg_replace('/\s{2,}/', ' ', $_POST['citta']) . "','" . preg_replace('/\s{2,}/', ' ', $_POST['provincia']) . "',
        '" . preg_replace('/\s{2,}/', ' ', $_POST['codicefiscale']) . "','".$campione."','" . preg_replace('/\s{2,}/', ' ', $_POST['nome']) . "','" . preg_replace('/\s{2,}/', ' ', $_POST['cognome']) . "','".$tipoCampione."')";
    global $wpdb;
    $wpdb->query($query);
    return $query;
}



function testerSent(){
  global $wpdb;
  $id=$_POST['id'];
  $query = "UPDATE wp_campioni_users SET campione_inviato='1' WHERE id=$id";
  $wpdb->query($query);
  echo "ok";
  die();
}

function checkCampioneGiaInviato() {
    global $wpdb;

    $cognome = preg_replace('/\s{2,}/', ' ', $_POST['cognome']);
    $via = preg_replace('/\s{2,}/', ' ', $_POST['via']);
    $codice = preg_replace('/\s{2,}/', ' ', $_POST['codicefiscale']);
    $citta = preg_replace('/\s{2,}/', ' ', $_POST['citta']);
    $prov = preg_replace('/\s{2,}/', ' ', $_POST['provincia']);
    $civico = preg_replace('/\s{2,}/', ' ', $_POST['civico']);
    $email = preg_replace('/\s{2,}/', ' ', $_POST['email']);

    $query = "SELECT * FROM wp_campioni_users WHERE codice_fiscale='{$codice}' OR email='{$email}'";

    $results = $wpdb->get_results($query, ARRAY_A);

    $nr = count($results);
    if ($nr != 0)
        return false;
    $query = "SELECT * FROM wp_campioni_users WHERE
        via='{$via}' AND citta='{$citta}'
        AND provincia='{$prov}' AND civico='{$civico}'";
    $results = $wpdb->get_results($query, ARRAY_A);

    $nr = count($results);
    if ($nr != 0)
        return false;
    return true;
}

function checkCampioneGiaInviatoAdmin(){
  global $current_user; get_currentuserinfo();
  global $wpdb;
  $email = $current_user->user_email;
  $tipocampione = $_REQUEST['tipoCampione'];
  $query = "SELECT * FROM wp_campioni_users WHERE email='{$email}' AND tipologia_campione='{$tipocampione}'";
  $results = $wpdb->get_results($query, ARRAY_A);

    $nr = count($results);
    if ($nr != 0)
        return false;
    return true;
}


global $pattern;

$pattern['username'] = '/[0-9a-zA-Z]{3,13}/';
$pattern['nome'] = '/[a-zA-Z]{3,13}/';
$pattern['cognome'] = '/[a-zA-Z ]{3,13}/';
$pattern['email'] = '/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$/';
$pattern['via'] = '/[a-zA-Z]{3,12}/';
$pattern['cap'] = '/^[0-9]{5}$/';
$pattern['civico'] = '/^[a-z0-9\ ]{0,5}$/';
$pattern['citta'] = '/^[a-zA-Z]{2,15}$/';
$pattern['codice'] = '/^[A-Za-z]{6}[0-9]{2}[A-Za-z][0-9]{2}[A-Za-z][0-9]{3}[A-Za-z]$/';
?>
